I. Field
The present invention generally relates to packet data communications, and more particularly, to identifying server locations during packet data communications.
II. Background
Interconnecting of networks globally allows information to be swiftly accessed irrespective of geographical distances. FIG. 1 shows a simplified schematic drawing of the global connection of networks, commonly referred to as the Internet signified by the reference numeral 20. The Internet 20 is in essence many networks with different levels of hierarchy linked together. The Internet 20 is operated under the TCP/IP (Transmission Control Protocol/Internet Protocol) promulgated by the IETF (Internet Engineering Task Force). The TCP/IP can be found in RFC (Request For Comments) 703 and RFC 791 published by the IETF.
Connected to the Internet 20 are various individual networks, sometimes called LANs (Local Area Networks) or WANs (Wide Area Networks) depending on the network sizes. Shown in FIG. 1 are some of such networks 22, 24, 26 and 28 tied to the Internet 20.
Within each of the networks 22, 24, 26 and 28, there can be various pieces of equipment connected to and in communication with each other. Examples are computers, printers, and servers, to name just a few. Each piece of equipment has a unique hardware address, commonly called the MAC (Media Access Control) address. The piece of equipment with the MAC address is sometimes called a node. When the node communicates beyond its own network via the Internet 20, an IP address needs to be assigned to the node.
The assignment of the IP address can be manual or automatic. The manual assignment of the IP address can be performed by a network administrator, for example. More often, the IP address is automatically assigned by a server called the DHCP (Dynamic Host Control Protocol) server residing inside in the node's network.
Returning now to FIG. 1, as an example, suppose a node 30 in the network 22 attempts to send a data packet to another node 32 in the network 28. Under the TCP/IP, each data packet needs to have a source address and a destination address. In this case, the source address is address of the node 30 in the network 22. The destination address is the address of the node 32 in the network 28.
As another example, when the node 30 in the network 22 tries to retrieve information from the node 34 in another network 24, such as in a web hosting session in which the node 34 serves as a web host, the node 30 must provide a proper IP address of the node 34 in the network 24 for such a session.
Advent in wireless technologies allows nodes to be detached from their originally registered network to another network. For instance, referring back to FIG. 1, the node 30, instead of permanently wired to the network 22, can be a wireless device, such as a PDA (Personal Device Assistant), a cellular phone, or a mobile computer. The wireless node 30 can travel beyond the boundary of its home network 22. Thus, for instance, the node 30 may roam away from its home network 22 to a foreign network 26. Under such scenario, the original IP address assigned to the node 30 would no longer be applicable to the node 30. As such, data packets sent to the node 30 may not be reachable to the node 30.
The MIP (Mobile Internet Protocol) set forth by the IETF is intended to address the node mobility problems. In accordance with the RFC 2002 published by the IETF, the node 30 is assigned a “care-of address,” abbreviated as CoA (Care-of Address). Under the RFC 2002, there are two types of CoA, namely, the FA CoA (Foreign Agent Care-of Address) and the CCoA (Co-Located Care of Address). The FA CoA is in essence the address of a FA (Foreign Agent) (not shown), which is a designated server in the foreign network where the node 30 is located at. The CCoA is an individual but temporary address assigned to the node 30 by the foreign network. In any case, anytime the node 30 is in a foreign territory, the node 30 must register the CoA, be it the FA CoA or the CCoA, with its home network 22, so that the home network 22 always knows the whereabouts of the node 30. After registration, the CoA is stored in the routing table maintained by a designated server, called the HA (Home Agent) (not shown), of the home network 22.
Take an example for illustration. Suppose the node 30 roams into the foreign network 26. Upon receipt of the advertisement from the foreign network 26, the node knows the FA address of the foreign network 26. The node 30 then registers the FA CoA with the home network 22. When the node 30 in the foreign network 26 sends out a data packet to the node 34 in the network 24, knowing the address of the node 34 in the network 24, the data packet can be sent straightforwardly. However, the reverse traffic may not be so straightforward.
In the reverse data route, when the node 34 in the network 24 attempts to send a data packet to the node 30, now in the foreign network 26, as mentioned above, in conformance with the TCP/IP, both the source and the destination addresses must be specified in the data packet. In this case, the source address is the IP address of the node 34 in the network 24. As for the destination address, the node 34 only knows the IP address of the node 30 assigned by its home network 22, called the HoA (Home assigned Address), not the FA CoA of the node 30. Thus, the destination address will be set at the HoA of the node 30. Nevertheless, since the FA CoA of the node 30 is stored in the routing table HA of the home network 22, when the data packet reaches the home network 22, the HA of the network 22 encapsulates the received data packet with the stored FA CoA and resend it to the node 30 in the foreign network 26. The encapsulated FA CoA serves as the destination address of the resent data packet. Once the foreign network 26 receives the rerouted data packet, the foreign network 26 merely strips away the encapsulated FA CoA and delivers the original packet to the mobile node 30.
Operating in such manner, a virtual data tunnel is said to be established between the node 34 in the network 24 and the node 30 roaming in the foreign network 26, all intended to be transparent to the users. This is despite the fact that in reality, the virtual tunnel actually involves three-way data communications.
Heretofore, while the node 30 is roaming, it is difficult and very often impossible for the node 30 to locate other nodes in other networks, even though the node 30 knows exactly the type of data it wants to access. Returning to the example immediately above, the node 30 in the foreign network 26 can send data packets to the node 34 in the network 24 because the node 30 knows the IP address of the node 34 well in advance. In reality, this is not always the case. Suppose, the node 30 merely knows the type of information to be accessed. The node 30 may even know the address of the network 24 which has a server holding information to be accessed. However, the node 30 does not know the exact IP address of the server node 34 and is consequently handicapped in reaching the node 34.
There is thus a need to provide a roaming node with ways to conveniently access server information located in different networks.